Data storage devices (DSDs) are often used with a host in a data storage system to record data on or to reproduce data from a recording media. As one type of DSD, a disk drive can include a rotating magnetic disk and a head actuated over the disk to magnetically write data to and read data from the disk. Such disks include a plurality of radially spaced, concentric tracks for recording data.
Shingled Magnetic Recording (SMR) has been introduced as a way of increasing the amount of data that can be stored in a given area on a disk by increasing the number of Tracks Per Inch (TPI). SMR increases TPI by using a relatively wide shingle write head to overlap tracks like roof shingles. The non-overlapping portion then serves as a narrow track that can be read by a narrower read head.
Although a higher number of TPI is ordinarily possible with SMR, the overlap in tracks can create a problem when writing data since new writes to a previously overlapped track affects data written in the overlapping track. For this reason, tracks are sequentially written to avoid affecting previously written data.
Managing sequentially written data for SMR media typically includes the DSD using an indirection system to translate between different addressing schemes to ensure that data is sequentially written. When data is modified for a particular Logical Block Address (LBA), the indirection system allows the DSD to sequentially write the modified data to a new location and remap the LBA for the data to the new location. The old version of the data at the previous location becomes obsolete or invalid data.
In order to free up space on the disk, a Garbage Collection (GC) process can be performed to make the portions of the disk storing invalid or obsolete data available for storing valid data. This can be accomplished during a GC process by relocating the valid data from a particular area on the disk and leaving invalid data to be overwritten. Other types of storage media using indirection, such as solid-state memory, may also use GC to free up portions of the memory storing invalid data.